package utils

import (
	"github.com/cloudwego/hertz/pkg/app"
	"hertz/pojo"
)

import (
	"github.com/cloudwego/hertz/pkg/common/json"
)

func GetParamMessage(ctx *app.RequestContext) *pojo.MessageAction {
	return &pojo.MessageAction{
		Token:      ctx.Query("token"),
		UserId:     ctx.Query("to_user_id"),
		ActionType: ctx.Query("action_type"),
		Content:    ctx.Query("content"),
	}
}

func GetParamRelation(ctx *app.RequestContext) *pojo.RelationAction {
	return &pojo.RelationAction{
		Token:      ctx.Query("token"),
		UserId:     ctx.Query("to_user_id"),
		ActionType: ctx.Query("action_type"),
	}
}

func GetParamUser(ctx *app.RequestContext) *pojo.UserAction {
	return &pojo.UserAction{
		Token:  ctx.Query("token"),
		UserId: ctx.Query("user_id"),
		Username: ctx.Query("username"),
		Password: ctx.Query("password"),
	}
}

func GetParamFavourite(ctx *app.RequestContext) *pojo.FavouriteAction {
	return &pojo.FavouriteAction{
		Token:      ctx.Query("token"),
		VideoId:    ctx.Query("video_id"),
		ActionType: ctx.Query("action_type"),
		UserId:     ctx.Query("user_id"),
	}
}

func GetParamVideo(ctx *app.RequestContext) *pojo.VideoAction {
	return &pojo.VideoAction{
		Token:      ctx.Query("token"),
		LatestTime: ctx.Query("latest_time"),
	}
}

func GetParamComment(ctx *app.RequestContext) *pojo.CommentAction {
	return &pojo.CommentAction{
		Token:       ctx.Query("token"),
		VideoId:     ctx.Query("video_id"),
		ActionType:  ctx.Query("action_type"),
		CommentText: ctx.Query("comment_text"),
		CommentId:   ctx.Query("comment_id"),
	}
}

// GetBody /** 从http中抽取Body对象
func GetBody(ctx *app.RequestContext, v interface{}) error {
	body, err := ctx.Body()
	if err != nil {
		return err
	}

	if err = json.Unmarshal(body, v); err != nil {
		return err
	}
	return nil
}
